草庐IT

android - String转Android JSONObject丢失utf-8

全部标签

java - String.getBytes ("ISO-8859-1") 在 OS X 上给我 16 位字符

使用Java6从字符串中获取8位字符:System.out.println(Arrays.toString("öä".getBytes("ISO-8859-1")));给我,在Linux上:[-10,28]但是OSX我得到:[63,63,63,-89]使用新的nioCharSetEncoder类时,我似乎得到了相同的结果。我究竟做错了什么?还是苹果的错?:) 最佳答案 我通过将源文件保存为UTF-8,然后告诉编译器它真的是MacRoman,设法重现了这个问题:javac-encodingMacRomanTest.java我原以为ja

java - 如何将自定义编码文件转换为 UTF-8(在 Java 中或使用专用工具)

我用Java重写的遗留软件使用自定义(类似于Win-1252)编码作为数据存储。对于我正在构建的新系统,我想用UTF-8替换它。所以我需要将这些文件转换为UTF-8以提供给我的数据库。我知道使用的字符映射表,但不是广为人知的字符映射表。例如。“A”位于位置0x0041(如在Win-1252中),但在0x0042上有一个符号,在UTF-8中出现在位置0x0102上,依此类推。有没有一种简单的方法可以用Java解码和转换这些文件?我已经阅读了很多帖子,但它们都涉及某种行业标准编码,而不是自定义编码。我希望可以创建自定义java.nio.ByteBuffer.CharsetDecoder或j

java - 将 List<String> 转换为 List<MyObject>,其中 MyObject 包含一个表示顺序的 int

是否有我缺少的模式或内置函数,或者我应该像这样循环publicListconvert(ListmyStrings){ListmyObjects=newArrayList(myStrings.size());Integeri=0;for(Stringstring:myStrings){MyObjectmyObject=newmyObject(i,string);myObjects.add(object);i++;}returnmyObjects;}这是因为我需要将列表保存到数据库并保留顺序。 最佳答案 您可以使用Guava:Listm

java - 无法理解 String.replaceAll 非贪婪行为

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Javaregexanomaly?知道为什么以下测试失败(返回“xx”而不是“x”)@TestpublicvoidtestReplaceAll(){assertEquals("x","xyz".replaceAll(".*","x"));}我不想做"^.*$"....我想了解这种行为。有什么线索吗?

java - 如何使用 Apache Ant 以 UTF-8 编码 Java 文件?

在我的build.xml文件中,我通过cxf获取了一些Java文件。其中一些Java文件需要以UTF-8编码。如何使用Ant将编码更改为UTF-8?PS:我找到了有关如何将javac的编码设置为UTF-8的说明,但在javac之前,我需要Java文件采用UTF-8。否则我会得到一个错误:warning:unmappablecharacterforencodingutf-8这是我的代码:我在这里应该做什么来制作用utf-8编码java文件? 最佳答案 Ant的任务具有属性encoding和outputencoding.单个Java文件

java - 在 java (JSP) 中将十进制 NCR 代码转换为 UTF-8

我试图将FARSI中的字符串解码为UTF-8,但后来我检查了浏览器本身将FARSI字符串转换为十进制NCR代码我如何将十进制NCR代码转换为UTF-8??StringfarMsg="عتباري";StringfinalMsg=newString(farMsg.getBytes(),"UTF-8");System.out.println("\nFarsiMessage\n"+finalMsg);当我尝试使用上面的代码进行转换时,它工作正常但是如果我使用来自JSP页面输入框的相同字符串,它会给我这样的输出عتباري

java - 让 Firebase 与 Java 一起工作,而不是 Android

我正在尝试启动并运行一个libgdx项目,我想为用户登录提供firebase。我发现SimleLogin类取决于Android.jar。有没有办法解决这个问题,因为我希望桌面java应用程序像android一样运行。这是导致问题的代码:SimpleLoginauthClient=newSimpleLogin(myRef);;authClient.createUser("myuser@gmail.com","muchwow",newSimpleLoginAuthenticatedHandler(){@Overridepublicvoidauthenticated(FirebaseSimp

java - 在 Java 中将 ByteBuffer 转换为 String

我有一个来自ByteBuffer的byte[]bytes,其中包含一个数据包。我想将数据包放入String中。目前我有以下内容byte[]bytes=packet.array();System.out.println("PacketString:"+newString(bytes));但是我最终得到以下输出PacketString:E����我试过这样编码System.out.println("PacketString:"+newString(bytes,Charset.forName("UTF-8")));但这不是正确的字符集。谁能告诉我是什么? 最佳答案

java - flatMap() 将 LinkedList<String> 流转换为 String 流

我的目标正是标题所说的。我正在做的是:.stream().flatMap(x->x.getTitles())getTitles()返回LinkedList,我预计flatMap()完成这项工作并创建字符串流而不是LinkedList流,但是Eclipse说:Typemismatch:cannotconvertfromLinkedListtoStream我该怎么做?(我需要用流来做,这都是更大的流计算的一部分) 最佳答案 flatMap期望映射到流,而不是集合。使用.stream().flatMap(x->x.getTitles().

Java String.split(),如何防止新数组中出现空元素

我有一个像这样的字符串Strings="hello.are..you";Stringtest[]=s.split("\\.");test[]包含4个元素:helloareyou如何使用split()生成三个非空元素? 最佳答案 你可以使用量词String[]array="hello.are..you".split("\\.+");要处理前导.字符,您可以这样做:String[]array=".hello.are..you".replaceAll("^\\.","").split("\\.+");